그래서 구조체 목록과 관련하여 list :: sort ()의 적절한 사용을 알아내는 데 문제가 있습니다. 관련 코드는 다음과 같습니다. 구조 학생 { char firstnm [20], lastnm [20]; int id, 등급; }; list <학생> sList; // 관련없는 코드 ... cout << "이름, 아이디, 학년을 입력하세요. (예 : myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (데이터); sList.sort (); 내가 해결하려는 문제는 sList.sort ()를 사용하여 ID별로 정렬하는 것입니다. 그러나 list :: sort ()에 제대로 전달하는 방법을 모릅니다. 도움 / 시간에 미리 감사드립니다! 편집 : 해결책은 단순히 이것을 내 구조체에 추가하는 것입니다. bool 연산자 <(const student & cmp) const { 리턴 ID
2021-01-22 08:21:30
std :: sort를 살펴 봐야합니다. (https://en.cppreference.com/w/cpp/algorithm/sort) 해당 함수에 대한 여러 정의가 있으며 정렬하려는 항목을 지정할 수있는 곳이 있습니다. 또한 해당 게시물을 살펴보십시오. 필요한 것 같습니다. https://stackoverflow.com/a/21234017/6663947 편집하다 : 비교기의 예입니다. sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Compare comp); 키 ID에 따라 오름차순으로 목록에있는 학생 개체를 정렬한다고 가정합니다. 사용자 정의 학생 클래스에 대해 operator <를 다음과 같이 정의 할 수 있습니다. bool 연산자 <(학생 const & a, 학생 const & b) { return a.id